var express = require('express');
var router = express.Router();
const BizResult = require("../config/BizResult");
// mongodb
const AccountModel = require('../models/AccountModel');

router.get('/', function (req, res, next) {
  res.render('index', { title: 'Express' });
});

// 解析请求体的中间件
const bodyParser = require('body-parser');
// 解析 querystring 格式请求体的中间件 【url编码】
let urlParser = bodyParser.urlencoded({ extended: false });
// 解析 JSON 格式请求体的中间件
let jsonParser = bodyParser.json();


/* 记账本列表 */
router.get('/account', function (req, res, next) {
  // res.send('记账本列表')
  AccountModel.find().then((data, err) => {
    if (err) {
      console.log('读取失败', err)
      res.send(BizResult.fail(err))
      return false;
    }
    console.log('读取成功', data);
    res.render('list', { list: data })
  })
});

/* 添加账本 */
router.get('/account/create', jsonParser, (req, res) => {
  AccountModel.find().then((data, err) => {
    // 失败
    if (err) return res.send(BizResult.fail(err))
    res.send(BizResult.success(data));
  })

});


// 处理添加账单逻辑
router.post('/account/create', urlParser, (req, res) => {
  // 获取请求体
  AccountModel.create(req.body).then((data, err) => {
    // 失败
    if (err) return res.send(BizResult.fail(err))
    res.send(BizResult.success('添加成功'));
  })
});

// 删除对应数据
router.post('/account/delete', urlParser, (req, res) => {
  // 获取请求体
  const { id } = req.body;
  AccountModel.deleteMany({ _id: id }).then((data, err) => {
    // 失败
    if (err) return res.send(BizResult.fail(err))
    res.send(BizResult.success('删除成功'))
  })
});


module.exports = router;
